package com.example.demo.order.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.order.dto.request.CartAddRequest;
import com.example.demo.order.dto.request.CartCheckoutRequest;
import com.example.demo.order.dto.request.CartUpdateRequest;
import com.example.demo.order.dto.response.CartResponse;
import com.example.demo.order.dto.response.OrderResponse;
import com.example.demo.order.entity.Cart;

import java.util.List;

/**
 * @ClassName CartService
 * @Description 购物车服务接口
 * @Author MingChang.Wei
 * @Date 2025/9/26
 **/
public interface CartService extends IService<Cart> {
    
    /**
     * 添加商品到购物车
     */
    Boolean addToCart(CartAddRequest request);
    
    /**
     * 分页查询用户购物车
     */
    Page<CartResponse> getCartList(Integer current, Integer size);
    
    /**
     * 更新购物车商品数量
     */
    Boolean updateCartQuantity(CartUpdateRequest request);
    
    /**
     * 删除购物车商品
     */
    Boolean removeFromCart(Long cartId);
    
    /**
     * 批量删除购物车商品
     */
    Boolean batchRemoveFromCart(List<Long> cartIds, String username);
    
    /**
     * 购物车结算
     */
    List<OrderResponse> checkoutCart(CartCheckoutRequest request);
}
